// $ANTLR 3.1 plp4.g 2012-07-02 04:40:14

import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

public class plp4Lexer extends Lexer {
    public static final int MAIN=11;
    public static final int CLASS=4;
    public static final int WHILE=28;
    public static final int CONST=17;
    public static final int NEW=35;
    public static final int STEP=31;
    public static final int FOR=29;
    public static final int MULOP=48;
    public static final int NOT=49;
    public static final int ADDOP=32;
    public static final int PARI=12;
    public static final int ID=5;
    public static final int AND=46;
    public static final int EOF=-1;
    public static final int BREAK=33;
    public static final int PARD=13;
    public static final int IF=26;
    public static final int EXPLAIN=40;
    public static final int LLAVEI=6;
    public static final int ENTERO=21;
    public static final int CONTINUE=34;
    public static final int COMENTARIO=56;
    public static final int LLAVED=7;
    public static final int RETURN=41;
    public static final int DOUBLE=15;
    public static final int GET=52;
    public static final int VOID=10;
    public static final int EXCEPTION=39;
    public static final int READLINE=44;
    public static final int TO=30;
    public static final int PRIVATE=50;
    public static final int STATIC=9;
    public static final int ELSE=27;
    public static final int BOOL=16;
    public static final int CORD=25;
    public static final int SET=53;
    public static final int PYC=19;
    public static final int INT=14;
    public static final int COMENLINEA=57;
    public static final int COMA=18;
    public static final int TRY=37;
    public static final int PUNTO=43;
    public static final int REAL=22;
    public static final int SINGLE=54;
    public static final int NEWLINE=55;
    public static final int PROPERTY=51;
    public static final int OR=45;
    public static final int BOOLEANO=23;
    public static final int CORI=24;
    public static final int ASIG=20;
    public static final int WRITELINE=36;
    public static final int CATCH=42;
    public static final int PUBLIC=8;
    public static final int THROW=38;
    public static final int RELOP=47;

    	public void emitErrorMessage(String m)
    	{
    		System.err.println( m );
    		System.exit (1);		
    	}


    // delegates
    // delegators

    public plp4Lexer() {;} 
    public plp4Lexer(CharStream input) {
        this(input, new RecognizerSharedState());
    }
    public plp4Lexer(CharStream input, RecognizerSharedState state) {
        super(input,state);

    }
    public String getGrammarFileName() { return "plp4.g"; }

    // $ANTLR start "CLASS"
    public final void mCLASS() throws RecognitionException {
        try {
            int _type = CLASS;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2047:8: ( 'class' )
            // plp4.g:2047:10: 'class'
            {
            match("class"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "CLASS"

    // $ANTLR start "SINGLE"
    public final void mSINGLE() throws RecognitionException {
        try {
            int _type = SINGLE;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2048:9: ( 'Single' )
            // plp4.g:2048:11: 'Single'
            {
            match("Single"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "SINGLE"

    // $ANTLR start "VOID"
    public final void mVOID() throws RecognitionException {
        try {
            int _type = VOID;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2049:7: ( 'void' )
            // plp4.g:2049:9: 'void'
            {
            match("void"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "VOID"

    // $ANTLR start "MAIN"
    public final void mMAIN() throws RecognitionException {
        try {
            int _type = MAIN;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2050:7: ( 'Main' )
            // plp4.g:2050:9: 'Main'
            {
            match("Main"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "MAIN"

    // $ANTLR start "INT"
    public final void mINT() throws RecognitionException {
        try {
            int _type = INT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2051:7: ( 'int' )
            // plp4.g:2051:9: 'int'
            {
            match("int"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "INT"

    // $ANTLR start "DOUBLE"
    public final void mDOUBLE() throws RecognitionException {
        try {
            int _type = DOUBLE;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2052:9: ( 'double' )
            // plp4.g:2052:11: 'double'
            {
            match("double"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "DOUBLE"

    // $ANTLR start "BOOL"
    public final void mBOOL() throws RecognitionException {
        try {
            int _type = BOOL;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2053:7: ( 'bool' )
            // plp4.g:2053:9: 'bool'
            {
            match("bool"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "BOOL"

    // $ANTLR start "PUBLIC"
    public final void mPUBLIC() throws RecognitionException {
        try {
            int _type = PUBLIC;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2054:9: ( 'public' )
            // plp4.g:2054:11: 'public'
            {
            match("public"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "PUBLIC"

    // $ANTLR start "STATIC"
    public final void mSTATIC() throws RecognitionException {
        try {
            int _type = STATIC;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2055:9: ( 'static' )
            // plp4.g:2055:11: 'static'
            {
            match("static"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "STATIC"

    // $ANTLR start "IF"
    public final void mIF() throws RecognitionException {
        try {
            int _type = IF;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2056:6: ( 'if' )
            // plp4.g:2056:8: 'if'
            {
            match("if"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "IF"

    // $ANTLR start "ELSE"
    public final void mELSE() throws RecognitionException {
        try {
            int _type = ELSE;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2057:7: ( 'else' )
            // plp4.g:2057:9: 'else'
            {
            match("else"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "ELSE"

    // $ANTLR start "FOR"
    public final void mFOR() throws RecognitionException {
        try {
            int _type = FOR;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2058:7: ( 'for' )
            // plp4.g:2058:9: 'for'
            {
            match("for"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "FOR"

    // $ANTLR start "TO"
    public final void mTO() throws RecognitionException {
        try {
            int _type = TO;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2059:6: ( 'to' )
            // plp4.g:2059:8: 'to'
            {
            match("to"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "TO"

    // $ANTLR start "STEP"
    public final void mSTEP() throws RecognitionException {
        try {
            int _type = STEP;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2060:7: ( 'step' )
            // plp4.g:2060:9: 'step'
            {
            match("step"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "STEP"

    // $ANTLR start "WHILE"
    public final void mWHILE() throws RecognitionException {
        try {
            int _type = WHILE;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2061:8: ( 'while' )
            // plp4.g:2061:10: 'while'
            {
            match("while"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "WHILE"

    // $ANTLR start "BREAK"
    public final void mBREAK() throws RecognitionException {
        try {
            int _type = BREAK;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2062:8: ( 'break' )
            // plp4.g:2062:10: 'break'
            {
            match("break"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "BREAK"

    // $ANTLR start "CONTINUE"
    public final void mCONTINUE() throws RecognitionException {
        try {
            int _type = CONTINUE;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2063:10: ( 'continue' )
            // plp4.g:2063:12: 'continue'
            {
            match("continue"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "CONTINUE"

    // $ANTLR start "NEW"
    public final void mNEW() throws RecognitionException {
        try {
            int _type = NEW;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2064:7: ( 'new' )
            // plp4.g:2064:9: 'new'
            {
            match("new"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "NEW"

    // $ANTLR start "WRITELINE"
    public final void mWRITELINE() throws RecognitionException {
        try {
            int _type = WRITELINE;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2065:11: ( 'System.Console.WriteLine' )
            // plp4.g:2065:13: 'System.Console.WriteLine'
            {
            match("System.Console.WriteLine"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "WRITELINE"

    // $ANTLR start "READLINE"
    public final void mREADLINE() throws RecognitionException {
        try {
            int _type = READLINE;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2066:10: ( ( 'int' | 'double' | 'bool' ) '.Parse(System.Console.ReadLine())' )
            // plp4.g:2066:12: ( 'int' | 'double' | 'bool' ) '.Parse(System.Console.ReadLine())'
            {
            // plp4.g:2066:12: ( 'int' | 'double' | 'bool' )
            int alt1=3;
            switch ( input.LA(1) ) {
            case 'i':
                {
                alt1=1;
                }
                break;
            case 'd':
                {
                alt1=2;
                }
                break;
            case 'b':
                {
                alt1=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 1, 0, input);

                throw nvae;
            }

            switch (alt1) {
                case 1 :
                    // plp4.g:2066:13: 'int'
                    {
                    match("int"); 


                    }
                    break;
                case 2 :
                    // plp4.g:2066:19: 'double'
                    {
                    match("double"); 


                    }
                    break;
                case 3 :
                    // plp4.g:2066:28: 'bool'
                    {
                    match("bool"); 


                    }
                    break;

            }

            match(".Parse(System.Console.ReadLine())"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "READLINE"

    // $ANTLR start "LLAVEI"
    public final void mLLAVEI() throws RecognitionException {
        try {
            int _type = LLAVEI;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2067:9: ( '{' )
            // plp4.g:2067:11: '{'
            {
            match('{'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "LLAVEI"

    // $ANTLR start "LLAVED"
    public final void mLLAVED() throws RecognitionException {
        try {
            int _type = LLAVED;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2068:9: ( '}' )
            // plp4.g:2068:11: '}'
            {
            match('}'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "LLAVED"

    // $ANTLR start "PARI"
    public final void mPARI() throws RecognitionException {
        try {
            int _type = PARI;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2069:7: ( '(' )
            // plp4.g:2069:9: '('
            {
            match('('); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "PARI"

    // $ANTLR start "PARD"
    public final void mPARD() throws RecognitionException {
        try {
            int _type = PARD;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2070:7: ( ')' )
            // plp4.g:2070:9: ')'
            {
            match(')'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "PARD"

    // $ANTLR start "CORI"
    public final void mCORI() throws RecognitionException {
        try {
            int _type = CORI;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2071:7: ( '[' )
            // plp4.g:2071:9: '['
            {
            match('['); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "CORI"

    // $ANTLR start "CORD"
    public final void mCORD() throws RecognitionException {
        try {
            int _type = CORD;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2072:7: ( ']' )
            // plp4.g:2072:9: ']'
            {
            match(']'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "CORD"

    // $ANTLR start "COMA"
    public final void mCOMA() throws RecognitionException {
        try {
            int _type = COMA;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2073:7: ( ',' )
            // plp4.g:2073:9: ','
            {
            match(','); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "COMA"

    // $ANTLR start "PYC"
    public final void mPYC() throws RecognitionException {
        try {
            int _type = PYC;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2074:7: ( ';' )
            // plp4.g:2074:9: ';'
            {
            match(';'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "PYC"

    // $ANTLR start "ASIG"
    public final void mASIG() throws RecognitionException {
        try {
            int _type = ASIG;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2075:7: ( '=' )
            // plp4.g:2075:9: '='
            {
            match('='); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "ASIG"

    // $ANTLR start "OR"
    public final void mOR() throws RecognitionException {
        try {
            int _type = OR;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2076:6: ( '|' )
            // plp4.g:2076:8: '|'
            {
            match('|'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "OR"

    // $ANTLR start "AND"
    public final void mAND() throws RecognitionException {
        try {
            int _type = AND;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2077:7: ( '&' )
            // plp4.g:2077:9: '&'
            {
            match('&'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "AND"

    // $ANTLR start "RELOP"
    public final void mRELOP() throws RecognitionException {
        try {
            int _type = RELOP;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2078:8: ( '==' | '!=' | '<' | '>' | '<=' | '>=' )
            int alt2=6;
            switch ( input.LA(1) ) {
            case '=':
                {
                alt2=1;
                }
                break;
            case '!':
                {
                alt2=2;
                }
                break;
            case '<':
                {
                int LA2_3 = input.LA(2);

                if ( (LA2_3=='=') ) {
                    alt2=5;
                }
                else {
                    alt2=3;}
                }
                break;
            case '>':
                {
                int LA2_4 = input.LA(2);

                if ( (LA2_4=='=') ) {
                    alt2=6;
                }
                else {
                    alt2=4;}
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 2, 0, input);

                throw nvae;
            }

            switch (alt2) {
                case 1 :
                    // plp4.g:2078:10: '=='
                    {
                    match("=="); 


                    }
                    break;
                case 2 :
                    // plp4.g:2078:15: '!='
                    {
                    match("!="); 


                    }
                    break;
                case 3 :
                    // plp4.g:2078:20: '<'
                    {
                    match('<'); 

                    }
                    break;
                case 4 :
                    // plp4.g:2078:26: '>'
                    {
                    match('>'); 

                    }
                    break;
                case 5 :
                    // plp4.g:2078:32: '<='
                    {
                    match("<="); 


                    }
                    break;
                case 6 :
                    // plp4.g:2078:39: '>='
                    {
                    match(">="); 


                    }
                    break;

            }
            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "RELOP"

    // $ANTLR start "ADDOP"
    public final void mADDOP() throws RecognitionException {
        try {
            int _type = ADDOP;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2079:8: ( '+' | '-' )
            // plp4.g:
            {
            if ( input.LA(1)=='+'||input.LA(1)=='-' ) {
                input.consume();

            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                recover(mse);
                throw mse;}


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "ADDOP"

    // $ANTLR start "MULOP"
    public final void mMULOP() throws RecognitionException {
        try {
            int _type = MULOP;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2080:8: ( '*' | '/' )
            // plp4.g:
            {
            if ( input.LA(1)=='*'||input.LA(1)=='/' ) {
                input.consume();

            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                recover(mse);
                throw mse;}


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "MULOP"

    // $ANTLR start "NOT"
    public final void mNOT() throws RecognitionException {
        try {
            int _type = NOT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2081:7: ( '!' )
            // plp4.g:2081:9: '!'
            {
            match('!'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "NOT"

    // $ANTLR start "PUNTO"
    public final void mPUNTO() throws RecognitionException {
        try {
            int _type = PUNTO;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2082:8: ( '.' )
            // plp4.g:2082:10: '.'
            {
            match('.'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "PUNTO"

    // $ANTLR start "ENTERO"
    public final void mENTERO() throws RecognitionException {
        try {
            int _type = ENTERO;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2083:9: ( ( '0' .. '9' )+ )
            // plp4.g:2083:11: ( '0' .. '9' )+
            {
            // plp4.g:2083:11: ( '0' .. '9' )+
            int cnt3=0;
            loop3:
            do {
                int alt3=2;
                int LA3_0 = input.LA(1);

                if ( ((LA3_0>='0' && LA3_0<='9')) ) {
                    alt3=1;
                }


                switch (alt3) {
            	case 1 :
            	    // plp4.g:2083:12: '0' .. '9'
            	    {
            	    matchRange('0','9'); 

            	    }
            	    break;

            	default :
            	    if ( cnt3 >= 1 ) break loop3;
                        EarlyExitException eee =
                            new EarlyExitException(3, input);
                        throw eee;
                }
                cnt3++;
            } while (true);


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "ENTERO"

    // $ANTLR start "REAL"
    public final void mREAL() throws RecognitionException {
        try {
            int _type = REAL;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2084:7: ( ( '0' .. '9' )+ '.' ( '0' .. '9' )+ )
            // plp4.g:2084:9: ( '0' .. '9' )+ '.' ( '0' .. '9' )+
            {
            // plp4.g:2084:9: ( '0' .. '9' )+
            int cnt4=0;
            loop4:
            do {
                int alt4=2;
                int LA4_0 = input.LA(1);

                if ( ((LA4_0>='0' && LA4_0<='9')) ) {
                    alt4=1;
                }


                switch (alt4) {
            	case 1 :
            	    // plp4.g:2084:10: '0' .. '9'
            	    {
            	    matchRange('0','9'); 

            	    }
            	    break;

            	default :
            	    if ( cnt4 >= 1 ) break loop4;
                        EarlyExitException eee =
                            new EarlyExitException(4, input);
                        throw eee;
                }
                cnt4++;
            } while (true);

            match('.'); 
            // plp4.g:2084:23: ( '0' .. '9' )+
            int cnt5=0;
            loop5:
            do {
                int alt5=2;
                int LA5_0 = input.LA(1);

                if ( ((LA5_0>='0' && LA5_0<='9')) ) {
                    alt5=1;
                }


                switch (alt5) {
            	case 1 :
            	    // plp4.g:2084:24: '0' .. '9'
            	    {
            	    matchRange('0','9'); 

            	    }
            	    break;

            	default :
            	    if ( cnt5 >= 1 ) break loop5;
                        EarlyExitException eee =
                            new EarlyExitException(5, input);
                        throw eee;
                }
                cnt5++;
            } while (true);


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "REAL"

    // $ANTLR start "BOOLEANO"
    public final void mBOOLEANO() throws RecognitionException {
        try {
            int _type = BOOLEANO;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2085:10: ( 'True' | 'False' )
            int alt6=2;
            int LA6_0 = input.LA(1);

            if ( (LA6_0=='T') ) {
                alt6=1;
            }
            else if ( (LA6_0=='F') ) {
                alt6=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 6, 0, input);

                throw nvae;
            }
            switch (alt6) {
                case 1 :
                    // plp4.g:2085:12: 'True'
                    {
                    match("True"); 


                    }
                    break;
                case 2 :
                    // plp4.g:2085:21: 'False'
                    {
                    match("False"); 


                    }
                    break;

            }
            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "BOOLEANO"

    // $ANTLR start "CONST"
    public final void mCONST() throws RecognitionException {
        try {
            int _type = CONST;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2086:8: ( 'const' )
            // plp4.g:2086:10: 'const'
            {
            match("const"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "CONST"

    // $ANTLR start "EXPLAIN"
    public final void mEXPLAIN() throws RecognitionException {
        try {
            int _type = EXPLAIN;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2087:10: ( 'explain' )
            // plp4.g:2087:12: 'explain'
            {
            match("explain"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "EXPLAIN"

    // $ANTLR start "TRY"
    public final void mTRY() throws RecognitionException {
        try {
            int _type = TRY;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2088:7: ( 'try' )
            // plp4.g:2088:9: 'try'
            {
            match("try"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "TRY"

    // $ANTLR start "CATCH"
    public final void mCATCH() throws RecognitionException {
        try {
            int _type = CATCH;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2089:8: ( 'catch' )
            // plp4.g:2089:10: 'catch'
            {
            match("catch"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "CATCH"

    // $ANTLR start "THROW"
    public final void mTHROW() throws RecognitionException {
        try {
            int _type = THROW;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2090:8: ( 'throw' )
            // plp4.g:2090:10: 'throw'
            {
            match("throw"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "THROW"

    // $ANTLR start "EXCEPTION"
    public final void mEXCEPTION() throws RecognitionException {
        try {
            int _type = EXCEPTION;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2091:11: ( 'Exception' )
            // plp4.g:2091:13: 'Exception'
            {
            match("Exception"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "EXCEPTION"

    // $ANTLR start "RETURN"
    public final void mRETURN() throws RecognitionException {
        try {
            int _type = RETURN;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2092:9: ( 'return' )
            // plp4.g:2092:11: 'return'
            {
            match("return"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "RETURN"

    // $ANTLR start "PRIVATE"
    public final void mPRIVATE() throws RecognitionException {
        try {
            int _type = PRIVATE;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2093:10: ( 'private' )
            // plp4.g:2093:12: 'private'
            {
            match("private"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "PRIVATE"

    // $ANTLR start "GET"
    public final void mGET() throws RecognitionException {
        try {
            int _type = GET;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2094:7: ( 'get' )
            // plp4.g:2094:9: 'get'
            {
            match("get"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "GET"

    // $ANTLR start "SET"
    public final void mSET() throws RecognitionException {
        try {
            int _type = SET;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2095:7: ( 'set' )
            // plp4.g:2095:9: 'set'
            {
            match("set"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "SET"

    // $ANTLR start "PROPERTY"
    public final void mPROPERTY() throws RecognitionException {
        try {
            int _type = PROPERTY;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2096:10: ( 'property' )
            // plp4.g:2096:12: 'property'
            {
            match("property"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "PROPERTY"

    // $ANTLR start "ID"
    public final void mID() throws RecognitionException {
        try {
            int _type = ID;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2097:6: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )* )
            // plp4.g:2097:8: ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )*
            {
            if ( (input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
                input.consume();

            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                recover(mse);
                throw mse;}

            // plp4.g:2097:31: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )*
            loop7:
            do {
                int alt7=2;
                int LA7_0 = input.LA(1);

                if ( ((LA7_0>='0' && LA7_0<='9')||(LA7_0>='A' && LA7_0<='Z')||LA7_0=='_'||(LA7_0>='a' && LA7_0<='z')) ) {
                    alt7=1;
                }


                switch (alt7) {
            	case 1 :
            	    // plp4.g:
            	    {
            	    if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
            	        input.consume();

            	    }
            	    else {
            	        MismatchedSetException mse = new MismatchedSetException(null,input);
            	        recover(mse);
            	        throw mse;}


            	    }
            	    break;

            	default :
            	    break loop7;
                }
            } while (true);


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "ID"

    // $ANTLR start "NEWLINE"
    public final void mNEWLINE() throws RecognitionException {
        try {
            int _type = NEWLINE;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2098:10: ( ( ( '\\r' )? '\\n' | ' ' | '\\t' )+ )
            // plp4.g:2098:12: ( ( '\\r' )? '\\n' | ' ' | '\\t' )+
            {
            // plp4.g:2098:12: ( ( '\\r' )? '\\n' | ' ' | '\\t' )+
            int cnt9=0;
            loop9:
            do {
                int alt9=4;
                switch ( input.LA(1) ) {
                case '\n':
                case '\r':
                    {
                    alt9=1;
                    }
                    break;
                case ' ':
                    {
                    alt9=2;
                    }
                    break;
                case '\t':
                    {
                    alt9=3;
                    }
                    break;

                }

                switch (alt9) {
            	case 1 :
            	    // plp4.g:2098:13: ( '\\r' )? '\\n'
            	    {
            	    // plp4.g:2098:13: ( '\\r' )?
            	    int alt8=2;
            	    int LA8_0 = input.LA(1);

            	    if ( (LA8_0=='\r') ) {
            	        alt8=1;
            	    }
            	    switch (alt8) {
            	        case 1 :
            	            // plp4.g:2098:13: '\\r'
            	            {
            	            match('\r'); 

            	            }
            	            break;

            	    }

            	    match('\n'); 

            	    }
            	    break;
            	case 2 :
            	    // plp4.g:2098:24: ' '
            	    {
            	    match(' '); 

            	    }
            	    break;
            	case 3 :
            	    // plp4.g:2098:28: '\\t'
            	    {
            	    match('\t'); 

            	    }
            	    break;

            	default :
            	    if ( cnt9 >= 1 ) break loop9;
                        EarlyExitException eee =
                            new EarlyExitException(9, input);
                        throw eee;
                }
                cnt9++;
            } while (true);

            skip();

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "NEWLINE"

    // $ANTLR start "COMENTARIO"
    public final void mCOMENTARIO() throws RecognitionException {
        try {
            int _type = COMENTARIO;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2099:12: ( '/*' ( . )* '*/' )
            // plp4.g:2099:14: '/*' ( . )* '*/'
            {
            match("/*"); 

            // plp4.g:2099:19: ( . )*
            loop10:
            do {
                int alt10=2;
                int LA10_0 = input.LA(1);

                if ( (LA10_0=='*') ) {
                    int LA10_1 = input.LA(2);

                    if ( (LA10_1=='/') ) {
                        alt10=2;
                    }
                    else if ( ((LA10_1>='\u0000' && LA10_1<='.')||(LA10_1>='0' && LA10_1<='\uFFFE')) ) {
                        alt10=1;
                    }


                }
                else if ( ((LA10_0>='\u0000' && LA10_0<=')')||(LA10_0>='+' && LA10_0<='\uFFFE')) ) {
                    alt10=1;
                }


                switch (alt10) {
            	case 1 :
            	    // plp4.g:2099:19: .
            	    {
            	    matchAny(); 

            	    }
            	    break;

            	default :
            	    break loop10;
                }
            } while (true);

            match("*/"); 

            skip();

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "COMENTARIO"

    // $ANTLR start "COMENLINEA"
    public final void mCOMENLINEA() throws RecognitionException {
        try {
            int _type = COMENLINEA;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // plp4.g:2100:12: ( '//' ( . )* '\\n' )
            // plp4.g:2100:14: '//' ( . )* '\\n'
            {
            match("//"); 

            // plp4.g:2100:19: ( . )*
            loop11:
            do {
                int alt11=2;
                int LA11_0 = input.LA(1);

                if ( (LA11_0=='\n') ) {
                    alt11=2;
                }
                else if ( ((LA11_0>='\u0000' && LA11_0<='\t')||(LA11_0>='\u000B' && LA11_0<='\uFFFE')) ) {
                    alt11=1;
                }


                switch (alt11) {
            	case 1 :
            	    // plp4.g:2100:19: .
            	    {
            	    matchAny(); 

            	    }
            	    break;

            	default :
            	    break loop11;
                }
            } while (true);

            match('\n'); 
            skip();

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "COMENLINEA"

    public void mTokens() throws RecognitionException {
        // plp4.g:1:8: ( CLASS | SINGLE | VOID | MAIN | INT | DOUBLE | BOOL | PUBLIC | STATIC | IF | ELSE | FOR | TO | STEP | WHILE | BREAK | CONTINUE | NEW | WRITELINE | READLINE | LLAVEI | LLAVED | PARI | PARD | CORI | CORD | COMA | PYC | ASIG | OR | AND | RELOP | ADDOP | MULOP | NOT | PUNTO | ENTERO | REAL | BOOLEANO | CONST | EXPLAIN | TRY | CATCH | THROW | EXCEPTION | RETURN | PRIVATE | GET | SET | PROPERTY | ID | NEWLINE | COMENTARIO | COMENLINEA )
        int alt12=54;
        alt12 = dfa12.predict(input);
        switch (alt12) {
            case 1 :
                // plp4.g:1:10: CLASS
                {
                mCLASS(); 

                }
                break;
            case 2 :
                // plp4.g:1:16: SINGLE
                {
                mSINGLE(); 

                }
                break;
            case 3 :
                // plp4.g:1:23: VOID
                {
                mVOID(); 

                }
                break;
            case 4 :
                // plp4.g:1:28: MAIN
                {
                mMAIN(); 

                }
                break;
            case 5 :
                // plp4.g:1:33: INT
                {
                mINT(); 

                }
                break;
            case 6 :
                // plp4.g:1:37: DOUBLE
                {
                mDOUBLE(); 

                }
                break;
            case 7 :
                // plp4.g:1:44: BOOL
                {
                mBOOL(); 

                }
                break;
            case 8 :
                // plp4.g:1:49: PUBLIC
                {
                mPUBLIC(); 

                }
                break;
            case 9 :
                // plp4.g:1:56: STATIC
                {
                mSTATIC(); 

                }
                break;
            case 10 :
                // plp4.g:1:63: IF
                {
                mIF(); 

                }
                break;
            case 11 :
                // plp4.g:1:66: ELSE
                {
                mELSE(); 

                }
                break;
            case 12 :
                // plp4.g:1:71: FOR
                {
                mFOR(); 

                }
                break;
            case 13 :
                // plp4.g:1:75: TO
                {
                mTO(); 

                }
                break;
            case 14 :
                // plp4.g:1:78: STEP
                {
                mSTEP(); 

                }
                break;
            case 15 :
                // plp4.g:1:83: WHILE
                {
                mWHILE(); 

                }
                break;
            case 16 :
                // plp4.g:1:89: BREAK
                {
                mBREAK(); 

                }
                break;
            case 17 :
                // plp4.g:1:95: CONTINUE
                {
                mCONTINUE(); 

                }
                break;
            case 18 :
                // plp4.g:1:104: NEW
                {
                mNEW(); 

                }
                break;
            case 19 :
                // plp4.g:1:108: WRITELINE
                {
                mWRITELINE(); 

                }
                break;
            case 20 :
                // plp4.g:1:118: READLINE
                {
                mREADLINE(); 

                }
                break;
            case 21 :
                // plp4.g:1:127: LLAVEI
                {
                mLLAVEI(); 

                }
                break;
            case 22 :
                // plp4.g:1:134: LLAVED
                {
                mLLAVED(); 

                }
                break;
            case 23 :
                // plp4.g:1:141: PARI
                {
                mPARI(); 

                }
                break;
            case 24 :
                // plp4.g:1:146: PARD
                {
                mPARD(); 

                }
                break;
            case 25 :
                // plp4.g:1:151: CORI
                {
                mCORI(); 

                }
                break;
            case 26 :
                // plp4.g:1:156: CORD
                {
                mCORD(); 

                }
                break;
            case 27 :
                // plp4.g:1:161: COMA
                {
                mCOMA(); 

                }
                break;
            case 28 :
                // plp4.g:1:166: PYC
                {
                mPYC(); 

                }
                break;
            case 29 :
                // plp4.g:1:170: ASIG
                {
                mASIG(); 

                }
                break;
            case 30 :
                // plp4.g:1:175: OR
                {
                mOR(); 

                }
                break;
            case 31 :
                // plp4.g:1:178: AND
                {
                mAND(); 

                }
                break;
            case 32 :
                // plp4.g:1:182: RELOP
                {
                mRELOP(); 

                }
                break;
            case 33 :
                // plp4.g:1:188: ADDOP
                {
                mADDOP(); 

                }
                break;
            case 34 :
                // plp4.g:1:194: MULOP
                {
                mMULOP(); 

                }
                break;
            case 35 :
                // plp4.g:1:200: NOT
                {
                mNOT(); 

                }
                break;
            case 36 :
                // plp4.g:1:204: PUNTO
                {
                mPUNTO(); 

                }
                break;
            case 37 :
                // plp4.g:1:210: ENTERO
                {
                mENTERO(); 

                }
                break;
            case 38 :
                // plp4.g:1:217: REAL
                {
                mREAL(); 

                }
                break;
            case 39 :
                // plp4.g:1:222: BOOLEANO
                {
                mBOOLEANO(); 

                }
                break;
            case 40 :
                // plp4.g:1:231: CONST
                {
                mCONST(); 

                }
                break;
            case 41 :
                // plp4.g:1:237: EXPLAIN
                {
                mEXPLAIN(); 

                }
                break;
            case 42 :
                // plp4.g:1:245: TRY
                {
                mTRY(); 

                }
                break;
            case 43 :
                // plp4.g:1:249: CATCH
                {
                mCATCH(); 

                }
                break;
            case 44 :
                // plp4.g:1:255: THROW
                {
                mTHROW(); 

                }
                break;
            case 45 :
                // plp4.g:1:261: EXCEPTION
                {
                mEXCEPTION(); 

                }
                break;
            case 46 :
                // plp4.g:1:271: RETURN
                {
                mRETURN(); 

                }
                break;
            case 47 :
                // plp4.g:1:278: PRIVATE
                {
                mPRIVATE(); 

                }
                break;
            case 48 :
                // plp4.g:1:286: GET
                {
                mGET(); 

                }
                break;
            case 49 :
                // plp4.g:1:290: SET
                {
                mSET(); 

                }
                break;
            case 50 :
                // plp4.g:1:294: PROPERTY
                {
                mPROPERTY(); 

                }
                break;
            case 51 :
                // plp4.g:1:303: ID
                {
                mID(); 

                }
                break;
            case 52 :
                // plp4.g:1:306: NEWLINE
                {
                mNEWLINE(); 

                }
                break;
            case 53 :
                // plp4.g:1:314: COMENTARIO
                {
                mCOMENTARIO(); 

                }
                break;
            case 54 :
                // plp4.g:1:325: COMENLINEA
                {
                mCOMENLINEA(); 

                }
                break;

        }

    }


    protected DFA12 dfa12 = new DFA12(this);
    static final String DFA12_eotS =
        "\1\uffff\16\45\10\uffff\1\100\2\uffff\1\101\2\uffff\1\47\1\uffff"+
        "\1\104\5\45\3\uffff\10\45\1\123\12\45\1\140\4\45\6\uffff\14\45\1"+
        "\162\1\uffff\10\45\1\174\2\45\1\177\1\uffff\1\u0080\2\45\1\u0083"+
        "\4\45\1\u0088\6\45\1\u008f\1\u0090\2\uffff\1\45\1\u0092\5\45\1\u0098"+
        "\1\uffff\1\u0099\1\45\2\uffff\2\45\1\uffff\1\u009d\3\45\1\uffff"+
        "\1\u00a1\1\45\1\u00a3\1\u00a4\2\45\2\uffff\1\45\1\uffff\1\u00a8"+
        "\4\45\2\uffff\1\45\1\u00ae\1\u00af\1\uffff\1\u009d\2\45\1\uffff"+
        "\1\45\2\uffff\1\u00b3\1\45\1\u00b5\1\uffff\1\u00b6\2\45\1\u00b9"+
        "\1\45\2\uffff\1\45\1\u00bc\1\45\4\uffff\1\u00be\1\45\1\uffff\1\u00c0"+
        "\1\45\1\uffff\1\u00c2\1\uffff\1\u00c3\1\uffff\1\45\2\uffff\1\u00c5"+
        "\1\uffff";
    static final String DFA12_eofS =
        "\u00c6\uffff";
    static final String DFA12_minS =
        "\1\11\1\141\1\151\1\157\1\141\1\146\2\157\1\162\1\145\1\154\1\157"+
        "\2\150\1\145\10\uffff\1\75\2\uffff\1\75\2\uffff\1\52\1\uffff\1\56"+
        "\1\162\1\141\1\170\2\145\3\uffff\1\141\1\156\1\164\1\156\1\163\2"+
        "\151\1\164\1\60\1\165\1\157\1\145\1\142\1\151\1\141\1\164\1\163"+
        "\1\160\1\162\1\60\1\171\1\162\1\151\1\167\6\uffff\1\165\1\154\1"+
        "\143\2\164\2\163\1\143\1\147\1\164\1\144\1\156\1\56\1\uffff\1\142"+
        "\1\154\1\141\1\154\1\166\1\160\1\164\1\160\1\60\1\145\1\154\1\60"+
        "\1\uffff\1\60\1\157\1\154\1\60\1\145\1\163\1\145\1\165\1\60\1\163"+
        "\1\151\1\164\1\150\1\154\1\145\2\60\2\uffff\1\154\1\56\1\153\1\151"+
        "\1\141\1\145\1\151\1\60\1\uffff\1\60\1\141\2\uffff\1\167\1\145\1"+
        "\uffff\1\60\1\145\1\160\1\162\1\uffff\1\60\1\156\2\60\1\145\1\155"+
        "\2\uffff\1\145\1\uffff\1\60\1\143\1\164\1\162\1\143\2\uffff\1\151"+
        "\2\60\1\uffff\1\60\1\164\1\156\1\uffff\1\165\2\uffff\1\60\2\56\1"+
        "\uffff\1\60\1\145\1\164\1\60\1\156\2\uffff\1\151\1\60\1\145\4\uffff"+
        "\1\60\1\171\1\uffff\1\60\1\157\1\uffff\1\60\1\uffff\1\60\1\uffff"+
        "\1\156\2\uffff\1\60\1\uffff";
    static final String DFA12_maxS =
        "\1\175\1\157\1\171\1\157\1\141\1\156\1\157\1\162\1\165\1\164\1\170"+
        "\1\157\1\162\1\150\1\145\10\uffff\1\75\2\uffff\1\75\2\uffff\1\57"+
        "\1\uffff\1\71\1\162\1\141\1\170\2\145\3\uffff\1\141\1\156\1\164"+
        "\1\156\1\163\2\151\1\164\1\172\1\165\1\157\1\145\1\142\1\157\1\145"+
        "\1\164\1\163\1\160\1\162\1\172\1\171\1\162\1\151\1\167\6\uffff\1"+
        "\165\1\154\1\143\2\164\1\163\1\164\1\143\1\147\1\164\1\144\1\156"+
        "\1\172\1\uffff\1\142\1\154\1\141\1\154\1\166\1\160\1\164\1\160\1"+
        "\172\1\145\1\154\1\172\1\uffff\1\172\1\157\1\154\1\172\1\145\1\163"+
        "\1\145\1\165\1\172\1\163\1\151\1\164\1\150\1\154\1\145\2\172\2\uffff"+
        "\1\154\1\172\1\153\1\151\1\141\1\145\1\151\1\172\1\uffff\1\172\1"+
        "\141\2\uffff\1\167\1\145\1\uffff\1\172\1\145\1\160\1\162\1\uffff"+
        "\1\172\1\156\2\172\1\145\1\155\2\uffff\1\145\1\uffff\1\172\1\143"+
        "\1\164\1\162\1\143\2\uffff\1\151\2\172\1\uffff\1\172\1\164\1\156"+
        "\1\uffff\1\165\2\uffff\1\172\1\56\1\172\1\uffff\1\172\1\145\1\164"+
        "\1\172\1\156\2\uffff\1\151\1\172\1\145\4\uffff\1\172\1\171\1\uffff"+
        "\1\172\1\157\1\uffff\1\172\1\uffff\1\172\1\uffff\1\156\2\uffff\1"+
        "\172\1\uffff";
    static final String DFA12_acceptS =
        "\17\uffff\1\25\1\26\1\27\1\30\1\31\1\32\1\33\1\34\1\uffff\1\36\1"+
        "\37\1\uffff\1\40\1\41\1\uffff\1\44\6\uffff\1\63\1\64\1\42\30\uffff"+
        "\1\35\1\43\1\65\1\66\1\45\1\46\15\uffff\1\12\14\uffff\1\15\21\uffff"+
        "\1\5\1\24\10\uffff\1\61\2\uffff\1\14\1\52\2\uffff\1\22\4\uffff\1"+
        "\60\6\uffff\1\3\1\4\1\uffff\1\7\5\uffff\1\16\1\13\3\uffff\1\47\3"+
        "\uffff\1\1\1\uffff\1\50\1\53\3\uffff\1\20\5\uffff\1\54\1\17\3\uffff"+
        "\1\2\1\23\1\6\1\10\2\uffff\1\11\2\uffff\1\56\1\uffff\1\57\1\uffff"+
        "\1\51\1\uffff\1\21\1\62\1\uffff\1\55";
    static final String DFA12_specialS =
        "\u00c6\uffff}>";
    static final String[] DFA12_transitionS = {
            "\2\46\2\uffff\1\46\22\uffff\1\46\1\32\4\uffff\1\31\1\uffff\1"+
            "\21\1\22\1\47\1\34\1\25\1\34\1\36\1\35\12\37\1\uffff\1\26\1"+
            "\33\1\27\1\33\2\uffff\4\45\1\42\1\41\6\45\1\4\5\45\1\2\1\40"+
            "\6\45\1\23\1\uffff\1\24\1\uffff\1\45\1\uffff\1\45\1\7\1\1\1"+
            "\6\1\12\1\13\1\44\1\45\1\5\4\45\1\16\1\45\1\10\1\45\1\43\1\11"+
            "\1\14\1\45\1\3\1\15\3\45\1\17\1\30\1\20",
            "\1\52\12\uffff\1\50\2\uffff\1\51",
            "\1\53\17\uffff\1\54",
            "\1\55",
            "\1\56",
            "\1\60\7\uffff\1\57",
            "\1\61",
            "\1\62\2\uffff\1\63",
            "\1\65\2\uffff\1\64",
            "\1\67\16\uffff\1\66",
            "\1\70\13\uffff\1\71",
            "\1\72",
            "\1\75\6\uffff\1\73\2\uffff\1\74",
            "\1\76",
            "\1\77",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "\1\33",
            "",
            "",
            "\1\33",
            "",
            "",
            "\1\102\4\uffff\1\103",
            "",
            "\1\105\1\uffff\12\37",
            "\1\106",
            "\1\107",
            "\1\110",
            "\1\111",
            "\1\112",
            "",
            "",
            "",
            "\1\113",
            "\1\114",
            "\1\115",
            "\1\116",
            "\1\117",
            "\1\120",
            "\1\121",
            "\1\122",
            "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45",
            "\1\124",
            "\1\125",
            "\1\126",
            "\1\127",
            "\1\130\5\uffff\1\131",
            "\1\132\3\uffff\1\133",
            "\1\134",
            "\1\135",
            "\1\136",
            "\1\137",
            "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45",
            "\1\141",
            "\1\142",
            "\1\143",
            "\1\144",
            "",
            "",
            "",
            "",
            "",
            "",
            "\1\145",
            "\1\146",
            "\1\147",
            "\1\150",
            "\1\151",
            "\1\152",
            "\1\154\1\153",
            "\1\155",
            "\1\156",
            "\1\157",
            "\1\160",
            "\1\161",
            "\1\163\1\uffff\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32"+
            "\45",
            "",
            "\1\164",
            "\1\165",
            "\1\166",
            "\1\167",
            "\1\170",
            "\1\171",
            "\1\172",
            "\1\173",
            "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45",
            "\1\175",
            "\1\176",
            "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45",
            "",
            "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45",
            "\1\u0081",
            "\1\u0082",
            "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45",
            "\1\u0084",
            "\1\u0085",
            "\1\u0086",
            "\1\u0087",
            "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45",
            "\1\u0089",
            "\1\u008a",
            "\1\u008b",
            "\1\u008c",
            "\1\u008d",
            "\1\u008e",
            "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45",
            "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45",
            "",
            "",
            "\1\u0091",
            "\1\163\1\uffff\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32"+
            "\45",
            "\1\u0093",
            "\1\u0094",
            "\1\u0095",
            "\1\u0096",
            "\1\u0097",
            "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45",
            "",
            "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45",
            "\1\u009a",
            "",
            "",
            "\1\u009b",
            "\1\u009c",
            "",
            "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45",
            "\1\u009e",
            "\1\u009f",
            "\1\u00a0",
            "",
            "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45",
            "\1\u00a2",
            "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45",
            "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45",
            "\1\u00a5",
            "\1\u00a6",
            "",
            "",
            "\1\u00a7",
            "",
            "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45",
            "\1\u00a9",
            "\1\u00aa",
            "\1\u00ab",
            "\1\u00ac",
            "",
            "",
            "\1\u00ad",
            "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45",
            "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45",
            "",
            "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45",
            "\1\u00b0",
            "\1\u00b1",
            "",
            "\1\u00b2",
            "",
            "",
            "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45",
            "\1\u00b4",
            "\1\163\1\uffff\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32"+
            "\45",
            "",
            "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45",
            "\1\u00b7",
            "\1\u00b8",
            "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45",
            "\1\u00ba",
            "",
            "",
            "\1\u00bb",
            "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45",
            "\1\u00bd",
            "",
            "",
            "",
            "",
            "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45",
            "\1\u00bf",
            "",
            "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45",
            "\1\u00c1",
            "",
            "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45",
            "",
            "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45",
            "",
            "\1\u00c4",
            "",
            "",
            "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45",
            ""
    };

    static final short[] DFA12_eot = DFA.unpackEncodedString(DFA12_eotS);
    static final short[] DFA12_eof = DFA.unpackEncodedString(DFA12_eofS);
    static final char[] DFA12_min = DFA.unpackEncodedStringToUnsignedChars(DFA12_minS);
    static final char[] DFA12_max = DFA.unpackEncodedStringToUnsignedChars(DFA12_maxS);
    static final short[] DFA12_accept = DFA.unpackEncodedString(DFA12_acceptS);
    static final short[] DFA12_special = DFA.unpackEncodedString(DFA12_specialS);
    static final short[][] DFA12_transition;

    static {
        int numStates = DFA12_transitionS.length;
        DFA12_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA12_transition[i] = DFA.unpackEncodedString(DFA12_transitionS[i]);
        }
    }

    class DFA12 extends DFA {

        public DFA12(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 12;
            this.eot = DFA12_eot;
            this.eof = DFA12_eof;
            this.min = DFA12_min;
            this.max = DFA12_max;
            this.accept = DFA12_accept;
            this.special = DFA12_special;
            this.transition = DFA12_transition;
        }
        public String getDescription() {
            return "1:1: Tokens : ( CLASS | SINGLE | VOID | MAIN | INT | DOUBLE | BOOL | PUBLIC | STATIC | IF | ELSE | FOR | TO | STEP | WHILE | BREAK | CONTINUE | NEW | WRITELINE | READLINE | LLAVEI | LLAVED | PARI | PARD | CORI | CORD | COMA | PYC | ASIG | OR | AND | RELOP | ADDOP | MULOP | NOT | PUNTO | ENTERO | REAL | BOOLEANO | CONST | EXPLAIN | TRY | CATCH | THROW | EXCEPTION | RETURN | PRIVATE | GET | SET | PROPERTY | ID | NEWLINE | COMENTARIO | COMENLINEA );";
        }
    }
 

}